define(function(require, exports, module) {
	"require:nomunge,exports:nomunge,module:nomunge";
	
$.fn.ldh_pagination_shoplist = function(pageSize,pageNumber, totalCount, totalPage, opts) {
	
	opts = $.extend({
		changePageCallback : function() {
		},
		changePageSizeCallBack : function() {
		}
	}, opts || {});

	return this
			.each(function() {
				
				/**
				 * 分页跳转
				 */
				function onChangePage(pageNumber) {
					
					return function() {
						opts.changePageCallback(pageSize,pageNumber);
					}
				}
				/**
				 * 设置每页显示条数
				 */
				function onChangePageSize(pageSize) {
					
					return function() {
						
						opts.changePageSizeCallBack(pageSize);
						
					}
					
				}
				/**
				 * 是否是首页（第一页），第一页页码为1
				 */
				function isFirstPage() {
					return pageNumber == 1;
				}

				/**
				 * 是否是最后一页
				 */
				function isLastPage() {
					return pageNumber >= totalPage;
				}
				
				/**
				 * 是否有下一页
				 */
				function isHasNextPage() {
					return totalPage > pageNumber;
				}
				
				/**
				 * 是否有上一页
				 */
				function isHasPreviousPage() {
					return pageNumber > 1;
				}

				/**
				 * 初始化分页界面
				 */
				function initPage(){
					
		  			var maxPageCount=5;//最大显示页数
		  			
		  			//如果当前页大于总页数 则设置当前页=总页数
		  			if(pageNumber==totalPage){
		  				pageNumber=totalPage;
		  			}
		  			var option="";
		  			
		  		
		  			option += '<button id="firstBtn'+id+'" type="button">首页</button>';
		  			option += ' <button id="previousBtn'+id+'" type="button">上一页</button> ';
					
					//小于最大显示页数 直接循环
		  			if(totalPage<maxPageCount+1){
		  				//alert("totalPage=="+totalPage);
		  				
		  				//alert("maxPageCount=="+maxPageCount);
		  				for(var i = 1;i<totalPage+1;i++){
		  						option+=' <button type="button">'+i+'</button>';
			  			}
		  			
		  			}else{
		  				
						/**
						 * 当前页-2 当前页+2 
						 */
						 var begin=0;
						 var end = 0;
						 if(pageNumber-2>0){
							 begin = pageNumber-2;
							 end = pageNumber+2;
							 if(pageNumber>=totalPage-2){
								 begin=totalPage-maxPageCount+1;
								 end=totalPage;
							 }
							 
							/* alert("begin=="+begin);
							 
							 alert("end=="+end);
							 */
							 for(var i = begin;i<end+1;i++){
					  				option+=' <button type="button">'+i+'</button>';
							 }
						 }else{
							 for(var i = 1;i<maxPageCount+1;i++){
								 
				  					option+=' <button type="button">'+i+'</button>';
			  					
				  			 }
						 }
						 
						
		  			}
		  			option += ' <button id="nextBtn'+id+'" type="button">下一页</button>';
	  				option += ' <button id="lastBtn'+id+'" type="button">尾页</button>';
	  				option += ' <span class="ldh-page-num">共'+totalPage+'页</span>';
	  		
	  				 
	  				
	  				panel.empty();
					
					panel.append(option);
					
					
					if (isFirstPage()) {
						$("#firstBtn"+id).attr("disabled", "disabled");
					} else {
						$("#firstBtn"+id).attr("disabled", false);
					}
					if (isLastPage()) {

						$("#lastBtn"+id).attr("disabled", "disabled");

					} else {
						$("#lastBtn"+id).attr("disabled", false);

					}

					if (!isHasNextPage()) {

						$("#nextBtn"+id).attr("disabled", "disabled");

					} else {

						$("#nextBtn"+id).attr("disabled", false);
					}

					if (!isHasPreviousPage()) {

						$("#previousBtn"+id).attr("disabled", "disabled");

					} else {

						$("#previousBtn"+id).attr("disabled", false);
					}

					//事件绑定
					$('#firstBtn'+id).on('click', onChangePage(1));
					$('#previousBtn'+id).on('click', onChangePage(pageNumber - 1));
					$('#nextBtn'+id).on('click', onChangePage(pageNumber + 1));
					$('#lastBtn'+id).on('click', onChangePage(totalPage));
					
					for(var i=2;i<$("#"+id+" button").length-2;i++){
						
						$("#"+id+" button:eq("+i+")").on('click',onChangePage($("#"+id+" button:eq("+i+")").text()));
						
						if($("#"+id+" button:eq("+i+")").text()==pageNumber){
							
							$("#"+id+" button:eq("+i+")").attr("disabled","disabled");
							
							$("#"+id+" button:eq("+i+")").addClass("on");
							
						}
						
					}
				

		  		}

				var panel = $(this);
				var id=panel.attr("id");
				
				initPage();

			});
}
});

